Skip to content

Preview 1.84.1#862

Open
neon-nyan wants to merge 307 commits intopreviewfrom
main
Open

Preview 1.84.1#862
neon-nyan wants to merge 307 commits intopreviewfrom
main

Conversation

@neon-nyan
Copy link
Copy Markdown
Member

@neon-nyan neon-nyan commented Mar 20, 2026

UpdateIsAvailable-Campaign-Columbina

Preview 1.84.1 (Codename: Columbina)

Hewwo, it's neon-nyan here~

It's beeeeeen a while since the last 1.83.x update. For now, this release is focusing on more quality improvements, bug fixes and internal code reworks rather than new features as we are preparing on reworking Collapse for new codebase.

That being said, this 1.84 update will be the marked as the last V1 release after roughly 4 years since the start of this project as we are going to move into V2 codebase starting this year (at Q3 or Q4 2026). Thank you so much for your continous support and interest in this project💖

Without further ado, let's dig into what's new in this release so far.

What's new?

Reworked Background System

Since months, HoYoverse has updated HoYoPlay to support multiple background to display, including static image and dynamic background ones. This has been our backlog since this release as due to "spaghetti-code" nature of our entire codebase, this made us harder to adapt the changes and thus making Collapse still only support one static background image.

Thanks to this massive rework, we are now able to pull-off this feature by splitting the parts of the code into its own element, making it more easier and more manageable for the change and for incoming improvements.

We are also moving to FFmpeg as our secondary library for background video decoder if no built-in codec is present. You will be prompted to install the FFmpeg library if none of the required built-in Windows Media Foundation codec for VP9 or any codec is present.

FFmpeg is licensed and distributed under GNU Lesser General Public License, version 2.1 (LGPLv2.1)

2026-03-22.20-02-46.webm

The experience might still be sluggish due to rushed implementation. But this will be improved in future updates🤞

Update: 2026/03/27

Due to corrupted video background situation in any regions for Zenless Zone Zero game, FFmpeg has been set as a default decoder for Collapse Launcher now (You can opt-in for using built-in Windows Media Foundation decoder, though). You might be asked to install a new one if you don't have any defined in your system's Environment Variable.

2026-03-27.11-55-13.webm

Reworked Localization System #861

This is more like development-experience improvement rather than user focused ones. Previously in order to implement the localization for new elements, we have to manually map each class properties to represented JSON entries. Thanks to newly source-generated class mapper, every JSON entries will be mapped automatically. Each class properties can now be bind into UI element directly, making the UI able to update the visual itself rather than being told manually, one-by-one (which is expensive).

Reworked Download Speed Limiter #859

The feature has been long broken since last 1.83.x release due to inconsistency and changes to other download-related libraries. Even though if you're enabling this feature, you might experience that the download speed "isn't actually being limited" and noticing that your bandwidth is still being fully utilized. This feature should now be fully fixed by decentralizing the code of the feature into its own library and making it easier to maintain.

This feature could also be applied for any game plugins whose have v1-update4 API standard fully implemented.

Minor UI Adjustments

Not so noticeable UI changes at all. But it's worth to mention here.

1. News Carousel Design

image

2. About Card

image

Other New Changes

  • [New] Adding Files Clean-up Button to the Menu Bar, by @bagusnl
image
  • [Imp] Switching Static Libraries Compiler from MSVC 19 to Clang 20.1, by @neon-nyan
  • [Imp] Caching Page Loading, by @neon-nyan
  • [Imp] Detach SDK Loading (for Sentry, Libsql.Client), by @neon-nyan
  • [Imp] Add Plugin Details (Breadcrumbs) to Sentry Reports, by @bagusnl
  • [Imp] Update overlay mask according to UI changes, by @shatyuka
  • [Fix] Remove ZZZ Game Settings Resolution Limit, by @shatyuka
  • [Fix] Invalid Encoding while saving ZZZ Game Settings Profile (GENERAL_DATA.bin), by @shatyuka
  • [Imp] Localization updates, by localizers 🥳
    • de-DE - German (Progress: 73%)
    • es-419 - Spanish (Latin America)(Progress: 99%)
    • fr-FR - French (Progress: 99%)
    • id-ID - Bahasa Indonesia (Progress: 100%)
    • it-IT - Italian (Progress: 45%)
    • ja-JP - Japanese (Progress: 100%)
    • ko-KR - Korean (Progress: 87%)
    • nl-NL - Dutch (Progress: 99%)
    • pl-PL - Polish (Progress: 56%)
    • pt-BR - Portuguese (Brazil)(Progress: 73%)
    • pt-PT - Portuguese (Portugal)(Progress: 66%)
    • ru-RU - Russian (Progress: 76%)
    • th-TH - Thai (Progress: 95%)
    • uk-UA - Ukranian (Progress: 85%)
    • zh-CN - Chinese Simplified (Progress: 100%)
    • zh-TW - Chinese Traditional (Progress: 61%)

PR Status :

  • Overall Status : Done
  • Commits : Done
  • Synced to base (Collapse:main) : Yes
  • Build status : OK
  • Crashing : No
  • Bug found caused by PR : -
    • [Regression][High Priority] Game Config's API is not changed while changing the games (Assignee: @neon-nyan) Fixed as per 052cb94

Templates

Changelog Prefixes
  **[New]**
  **[Imp]**
  **[Fix]**
  **[Loc]**
  **[Doc]**

neon-nyan and others added 30 commits January 12, 2026 01:55
+ Use async-detached routine on image loading
+ Add PNG version of poster for GetPlaceholderBackgroundImageFrom
+ Add default placeholder image on MainPage
+ Add ParallaxResetOnUnfocused property on LayeredBackgroundImage
+ Fix a gradual memory leaks on both GPU and General memory due to ComMarshalling operation.
+ Make MediaPlayer.CopyFrameToVideoSurface able to run outside of UI thread (this reduces call overhead on UI threads significantly)
+ Implement context menu (right-click menu) for background image and selector pills at the top of the launcher UI.
+ Remove test project and codes
+ Add feature to copy current image to clipboard, directly from frame buffer (also works for Video)
    There are 3 options you can choose:
    - Copy foreground (overlay) layer only
    - Copy background layer only
    - Copy and combine both layers (if available)
+ Add feature to seek video position
+ Move PanelSlideshow's Countdown Timer to different thread
+ Fix crash due to "DeviceLost" COM Exception during sleep or when active monitor is disabled
+ Remove shadow support for elements temporarily
    This is temporary until I found a solution for the shadow GPU usage problem.
+ Move several code to LayeredbackgroundImage element
+ Fix bloated memory allocation due to excessive use of IRandomAccessStream to load images
+ Make elevation and background blur work while switching pages
+ Make background integration for Plugin-based Games working (can be tested for HBR, Wuwa and DNA)
+ Make custom background usable for Plugin-based Games working
+ Fix hover trigger on Multi-background pips area
+ Localize context menu flyout for background
100% reviewed source file: 'en_US.json'
on 'es_419'.
Now the object will be returned using TCS to ensure the DispatcherQueue's Impl is executed and thus returns the object
Due to the size of the thumbnail being too small, the palette generator can't get enough color.
100% reviewed source file: 'en_US.json'
on 'es_419'.
This also fixes an issue where the element might cause a hard-crash due to race condition on GC.
This is a requirement for commit 0a9a62d
Also adds fallback to Safe-mode renderer for video frames if it failed to use the fast-unsafe renderer
* [UX] Put game file cleanup button to navigation bar

As FileCleanupPage is not really a "page" rather an overlay, we manually invoke the overlay the same way as the QS invokes them and force the NavigationViewControl to select the last item/page back so the UI literally says "nothing happened here"

i havent slept all night because my dumbass brain so help me

* Add trycatch on filescleanup navigator

* Avoid sending error to Sentry twice

note to self: SendException already send the exception data to Sentry
yes, i'm the one who made it do that in the first place
# Main Goal
Enhance Sentry breadcrumbs data in aid for troubleshooting

New fields:
### 1. Plugin Info
List all imported plugins with its version and the standard version
(pluginVersion-standardVersion)

### 2. App Configuration
Displays some configuration data used by Collapse
```
AppThread: httpDownload, extractionCpu
DownloadPreallocated: bool
ExternalDNS: bool
HttpCache: bool
HttpOpts: Redirect//Cookie//Insecure
Proxy: cl//+sys
SophonThread: httpDownload,extractionCpu
Waifu2x: bool
```
<img width="1272" height="479" alt="image"
src="https://github.com/user-attachments/assets/126f22d9-75e4-40f2-9fb4-2dc72bf54002"
/>

## PR Status :
- Overall Status : Done
- Commits : Done
- Synced to base (Collapse:main) : Yes
- Build status : OK
- Crashing : No
- Bug found caused by PR : 0

### Templates

<details>
  <summary>Changelog Prefixes</summary>
  
  ```
    **[New]**
    **[Imp]**
    **[Fix]**
    **[Loc]**
    **[Doc]**
  ```

</details>
+ Add media codec support detection
+ Fix COM Object cast and release
100% reviewed source file: 'en_US.json'
on 'zh_CN'.
100% reviewed source file: 'en_US.json'
on 'es_419'.
Comment on lines +220 to +224
MemoryStream ffmpegFrameExtracted = new();
IRandomAccessStream ffmpegFrameStream = ffmpegFrameExtracted.AsRandomAccessStream();
await ffmpegFrame.EncodeAsBmpAsync(ffmpegFrameStream);

await ffmpegFrameStream.FlushAsync();

This comment was marked as outdated.

Comment on lines +97 to +104
static void LoadExport(nint handle, string name, out nint exportPtr)
{
if (!NativeLibrary.TryGetExport(handle, name, out exportPtr))
{
throw new
EntryPointNotFoundException($"Cannot find {AddBytesOrWaitAsyncExportName} export from library!");
}
}

This comment was marked as outdated.

Comment on lines +122 to +130
using Process? process = Process.Start(new ProcessStartInfo
{
FileName = path,
Arguments = $"\"{packageFolder}\"",
WorkingDirectory = Path.GetDirectoryName(path),
UseShellExecute = true
});

await process!.WaitForExitAsync();

This comment was marked as outdated.

@sentry
Copy link
Copy Markdown

sentry bot commented Mar 22, 2026

🚧 Skipped: PR exceeds review size limit.

Please split into smaller PRs and re-run.
Reference ID: 996371

@bagusnl
Copy link
Copy Markdown
Member

bagusnl commented Mar 22, 2026

Sentry bill goes brrrr

THANK YOU SENTRY 💜💜

@sentry
Copy link
Copy Markdown

sentry bot commented Mar 24, 2026

🚧 Skipped: PR exceeds review size limit.

Please split into smaller PRs and re-run.
Reference ID: 1006068

@killerprojecte
Copy link
Copy Markdown

animated background is not working on Zenless Zone Zero (All Regions)

@neon-nyan
Copy link
Copy Markdown
Member Author

animated background is not working on Zenless Zone Zero (All Regions)

We are aware of this. This should be fixed after you enabled FFmpeg as video decoder via App Settings. This will be a default option. Still working on it.

@CollapseLauncher CollapseLauncher deleted a comment from sentry bot Mar 27, 2026
@CollapseLauncher CollapseLauncher deleted a comment from sentry bot Mar 27, 2026
+ Also few binding issues on notification, download settings and status on discord presence
@CollapseLauncher CollapseLauncher deleted a comment from sentry bot Mar 27, 2026
@sentry
Copy link
Copy Markdown

sentry bot commented Mar 27, 2026

🚧 Skipped: PR exceeds review size limit.

Please split into smaller PRs and re-run.
Reference ID: 1035234

@sentry
Copy link
Copy Markdown

sentry bot commented Mar 27, 2026

🚧 Skipped: PR exceeds review size limit.

Please split into smaller PRs and re-run.
Reference ID: 1035329

100% reviewed source file: 'en_US.json'
on 'es_419'.
@sentry
Copy link
Copy Markdown

sentry bot commented Mar 28, 2026

🚧 Skipped: PR exceeds review size limit.

Please split into smaller PRs and re-run.
Reference ID: 1037802

100% reviewed source file: 'en_US.json'
on 'zh_CN'.
@sentry
Copy link
Copy Markdown

sentry bot commented Mar 28, 2026

🚧 Skipped: PR exceeds review size limit.

Please split into smaller PRs and re-run.
Reference ID: 1040329

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants